Network processor for supporting residential gateway applications

ABSTRACT

A network processor for performing residential gateway processing tasks. The network processor includes a first cluster of packet processors and a second cluster of packet processors, wherein each of the first cluster and the second cluster includes a main packet processor and a secondary packet processor, wherein the main packet processor performs at least routing of incoming packets and the secondary packet processor performs off-loading tasks for the main packet processor; a plurality of Ethernet media access control (MAC) adapters for interfacing with a plurality of subscriber devices connected to a residential gateway; an external-network MAC adapter for interfacing with a wide area network (WAN) connected to the network processor; and an ingress handler for at least load balancing the processing of packets between the first cluster and the second cluster.

TECHNICAL FIELD

The present invention relates generally to network processors operablein residential gateways.

BACKGROUND OF THE INVENTION

As the demand from users for bandwidth rapidly increases, opticaltransmission systems, where subscriber traffic is transmitted usingoptical networks, are being installed to serve this demand. Thesenetworks are typically referred to as fiber-to-the-curb (FTTC),fiber-to-the-building (FTTB), fiber-to-the-premise (FTTP), orfiber-to-the-home (FTTH). Each such network provides access from acentral office (CO) to a building, or a home, via, e.g., optical fibersinstalled near or up to the subscribers' locations.

Examples of optical transmission systems include passive optical network(PON), such a Gigabit PON (GPON), an Ethernet PON (EPON), and ActiveEthernet. An Active Ethernet is a type of a FTTP network that usesoptical Ethernet switches to distribute the signal, thus incorporatingthe customers' premises and the central office into a switched Ethernetnetwork.

An exemplary diagram of a typical PON 100 is schematically shown inFIG. 1. The PON 100 includes M optical network units (ONUs) 120-1through 120-M, coupled to an optical line terminal (OLT) 130 via apassive optical splitter 140. Traffic data transmission may be achievedby using two optical wavelengths, one for the downstream direction andanother for the upstream direction. Downstream transmission from the OLT130 is broadcast to all ONUs 120. Each ONU 120 filters its respectivedata according to, for example, pre-assigned labels. ONUs 120 transmitrespective data to OLT 130 during different time slots allocated by OLT130 for each ONU 120. Splitter 140 splits a single line into multiplelines, for example, into lines 1 to 32, or, in the case of a longerdistance from OLT 130 to ONUs 120, into lines 1 to 16.

The GPON, EPON or Active Ethernet systems are currently being adopted bymany telecommunication companies in order to deliver high-speed dataservices to their subscribers. These services typically include a bundleof TV broadcasting, Internet, and telephone services.

To provide these services an ONU 120 is connected to a residentialgateway installed in the premises. As illustrated in FIG. 2 an input ofa residential gateway 210 is connected to the ONU 120. The gateway's 210outputs are coupled to, for example, a telephone device 220, a TVset-top box 230, and a computer 240 to provide Internet connectivity.Generally, a residential gateway may provide the functionality of amodem and router and may be, for example, a cable modem, a router, aswitch, a wireless modem, a wireless router, and so on.

Specifically, network units, such as ONUs are equipped with a networkprocessor (e.g., PON processor) utilized to receive the downstreamtraffic from a terminal unit (e.g., an OLT), and provide the contents ofthe downstream traffic to one or more subscriber devices, i.e., devicesconnected to the gateway 210. Similarly, the network processor isdesigned to receive and transmit upstream data from the one or moresubscriber devices to the terminal unit via the network, e.g., thepassive optical network.

Because residential gateways are required to support advancedapplications and to process high volumes of traffic, the currentlyavailable network processor, and especially PON processors, have becomebottlenecks which limit the performance of residential gateways. Forexample, such processors cannot efficiently support securityapplications, such as firewalls, attacks prevention, and IP security(IPSEC) protocol, while performing the traditional networking processingtasks of switching and bridging.

Therefore, it would be advantageous to provide a network processor thatsupports the processing requirements of residential gateways.

SUMMARY OF THE INVENTION

Certain embodiments of the invention include a network processor forperforming residential gateway processing tasks. The network processorcomprises a first cluster of packet processors and a second cluster ofpacket processors, wherein each of the first cluster and the secondcluster includes a main packet processor and a secondary packetprocessor, wherein the main packet processor performs at least routingof incoming packets and the secondary packet processor performsoff-loading tasks for the main packet processor; a plurality of Ethernetmedia access control (MAC) adapters for interfacing with a plurality ofsubscriber devices connected to a residential gateway; anexternal-network MAC adapter for interfacing with a wide area network(WAN) connected to the network processor; and an ingress handler for atleast load balancing the processing of packets between the first clusterand the second cluster.

Certain embodiments of the invention also include a cluster of packetprocessors operable in a network processor. The cluster of packetprocessor includes a main packet processor for performing a task of atleast routing of incoming packets; a secondary packet processor forperforming at least off-loading tasks for the main packet processor; aset of accelerators shared by the main packet processor and secondarypacket processor; a data memory unit shared by the main packet processorand secondary packet processor; and an internal bus for communicatingbetween the main packet processor and the secondary packet processor.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter that is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other objects, features, andadvantages of the invention will be apparent from the following detaileddescription taken in conjunction with the accompanying drawings.

FIG. 1 is an exemplary diagram of a PON.

FIG. 2 shows a typical installation of a residential gateway connectedto an ONU.

FIG. 3 is a diagram of a network processor in accordance with anembodiment of the invention.

FIG. 4 is a diagram of a cluster of packet processors in accordance withan embodiment of the invention.

FIG. 5 is a flowchart describing a method for processing the packets bythe cluster of packet processors in accordance with an embodiment of theinvention.

DETAILED DESCRIPTION OF THE INVENTION

It is important to note that the embodiments disclosed by the inventionare only examples of the many advantageous uses of the innovativeteachings herein. In general, statements made in the specification ofthe present application do not necessarily limit any of the variousclaimed inventions. Moreover, some statements may apply to someinventive features but not to others. In general, unless otherwiseindicated, singular elements may be in plural and vice versa with noloss of generality. In the drawings, like numerals refer to like partsthrough several views.

FIG. 3 shows a non-limiting and exemplary block diagram of anarchitecture of a network processor 300 implemented in accordance withan embodiment of the present invention. The network processor 300includes a central processing unit (CPU) 310, a plurality of Ethernetmedia access control (MAC) adapters 320-1 through 320-N, anexternal-network MAC adapter 330, an external memory arbiter 350 thatarbiters requests to an external memory 355, and internal memory arbiter360 that arbiters requests to an internal memory 365. The externalmemory 355 is typically larger and slower than the internal memory 365.In an embodiment of the invention, the external memory 355 is a DDR typewhile the internal memory 365 is a SRAM type. The memories 355 and 365are connected to a broad bus 390 through direct memory access (DMA)controllers 357 and 367 respectively.

In accordance with an embodiment of the invention, the network processor300 is designed to include a grid of packet processors 370 and aningress handler 380. According to an embodiment of the invention, thegrid of packet processors 370 is grouped into two clusters 370-A and370-B, each of which includes two packet processors. Therefore,according to this embodiment, the network processor 300 includes 4packet processors to serve processing of high volume traffic andresidential gateway applications. As will be described in detail below,packet processors in each of the clusters are identical, but performdifferent tasks. There is also task separation between two packetprocessors (371-A and 372-A or 371-B and 372-B) in each cluster. For thesake of brevity and without departing from the scope of the invention,the packet processors 371-A and 371-B will be referred hereinafter asthe “main packet processors” while the processors 372-A and 372-B willbe referred hereinafter as the “secondary packet processors”.

In an embodiment of the invention, the main packet processor is designedwith higher processing power relative to the secondary packet processor.However, the secondary processors are designed to efficiently performtime-consuming tasks including, but not limited to, packets' headermodifications, QoS mapping, egress handling, and the like. It should beappreciated that off-loading such tasks from the main packet processors371-A and 371-B enables these processors to efficiently perform thenetworking tasks, such as packets bridging and routing as well asresidential gateway tasks including, for example, encrypting/decryptingpackets, blocking unauthorized access, routing of packets, switchingpackets, network address translation (NAT), and blocking of attacks bymeans of firewall or other security techniques. A detailed discussion ofthe main and secondary packet processors is provided below. Thecommunication between the CPU 310 and the packet processors in theclusters 370-A and 370-B is through an internal inter-connect bus 340.

The ingress handler 380 is also connected to the broad bus 390 and actsas an interface between the peripherals, i.e., the external-network andEthernet MAC adapters and the packet processors in the clusters 370-Aand 370-B. Specifically, the ingress handler 380 performs the tasksrelated to determining the destination memory (355 and 365) for apayload of an incoming packet, determining which of the clusters 370-Aor 370-B should process the incoming packet, and offloading tasks. Theoffloading tasks include, but are not limited to, maintaining lookuptables to map the destination and source MAC addresses used foraccessing both GPON and Ethernet MAC adapters, parsing of incomingpackets, and management of ingress queues for the packet processors inthe clusters 370-A or 370-B. This includes providing the target clusterwith a detailed packet descriptor, parsing results, lookup results, andpacket headers of an incoming packet.

The ingress handler 380 decides on the target cluster 370-A or 370-B forprocessing the incoming packet based on a load balancing schema, aninput physical port for the incoming packet, or combination thereof. Theload-balancing schema is based in part on the current processing load,where the least busy cluster is selected. It should be appreciated thatthe load-balancing schema enables, unlike prior art solutions,processing of both upstream and downstream packets by both clusters.Therefore, the ingress handler 380 enables dynamic utilization ofprocessing time for upstream, downstream, and local switching of datapackets, based in part on the actual traffic load, and/or the load ofeach cluster 370.

The ingress handler 380 determines the destination memory (355 or 365)for the packet payload based on at least one of the following: theresults of the lookup tables (e.g., source address, destination address,or both), static configuration (e.g., input port number), packet parsedinformation (e.g., protocol type, VLAN tags, priority bits, etc.) or acombination thereof.

It should be appreciated that saving data in the internal memory 365allows improving the bandwidth utilization of the external memory 355,and thus the overall performance of the network processor 300. Forexample, local switching packets are redirected to the internal memory365, based on the lookup results. Such packets are typically routedbetween devices connected to the Ethernet MAC adapters 320-1 through320-N. In an embodiment of the invention, the local memory 365 may alsobe utilized as a general memory for various applications, for example,allocating additional memory to the CPU 310 and/or packet processors inthe clusters 370-A and 370-B.

The broad bus 390 connects between the clusters of packet processors370-A and 370-B, the Ethernet adapters 330-1 through 330-N and theExternal-MAC adapter 330. The broad bus 390 transfers data at high ratesand its architecture is based on a push-ahead mechanism, using a binarytree topology. The broad bus 390 supports parallelism in read-and-writetransactions and allows simultaneous transfer of data from various unitsat the same time. A detailed description of the broad bus 390 can befound in U.S. Pat. No. 7,370,127 assigned in common to the same assigneeas the present application, and which is hereby incorporated for allthat it contains. In a preferred embodiment, the broad bus 390communicates with the various components using broad bus handlers (BBH).

The CPU 310 executes commands received from the packet processors in thecluster 370-A and 370-B. The CPU 310 performs fast processing, where theexecution of each command is completed in one clock cycle. In anexemplary embodiment of the present invention, the CPU 310 may be ahigh-performance MIPS CPU including at least an instruction cache and adata cache.

Each of the Ethernet MAC adapters 320-1 through 320-N includes anEthernet interface for interfacing with subscriber devices, such ascomputers, setup boxes, wireless devices, and so on. Typically, devicesconnected in the Ethernet MAC adapters 320-1 through 320-N are connectedin a LAN. An Ethernet MAC adapter 320-j (j=1, . . . , N) is capable ofreceiving upstream data flow from subscriber devices and transmittingdownstream data to subscribers. Either upstream or downstream data flowsare respectively forwarded to or received from the packet processors370-A and 370-B via the broad bus 390. More specifically, the EthernetMAC adapter 320-j in the downstream direction handles IPTV packets. Suchpackets encapsulate video data of a program being broadcast. Inaddition, downstream data includes IP packets received from a WAN(through the external-network adapter 330) and are bridge routed,through an Ethernet MAC adapter 320-j to one of the computers of a LAN.The routing is performed by one of the cluster packet processors 370-Aand 370-B. Upstream data includes packets received, through the EthernetMAC adapters 320-j from computers connected to a LAN.

In accordance with an embodiment of the invention, the external-networkadapter 330 is a GPON MAC adapter that processes upstream and downstreamtraffic in accordance with the GPON standard. The GPON standard isdesigned to allow data transmission at a rate of up to 2.488 Gbps whileensuring data security and quality of service (QoS). The GPON MACadapter supports a plurality of traffic containers (T-CONTs). A T-CONTis a virtual upstream channel to which bandwidth is granted by the OLT.A single T-CONT can be allocated for an ONU, a class of service (CoS),or a logical ONU.

In accordance with other embodiments, the external-network adapter 330can process traffic according to the communication standards including,but not limited to, Active Ethernet, or Digital Subscriber Line (DSL).In alternative embodiments, to network processor 330 may be connected toan EPON modem, an Active Ethernet mode, or a DSL modem, through anEthernet port (not shown) to support the respective communicationstandards. It should be noted that the processing tasks performed by thecluster of processors are regardless of type of the external network.

FIG. 4 shows an exemplary block diagram of a cluster of packetprocessors 370-A in accordance with an exemplary embodiment of theinvention. For sake of brevity and without departing from the scope ofthe invention, only the cluster 370-A is illustrated herein. However, itshould be noted that the structure and the functions of the packetprocessors in the cluster 370-B are similar.

The cluster 370-A includes the main packet processor 371-A and secondarypacket processor 372-A that communicate with each other using aninternal bus 401. The main packet processor 371-A includes a coreprocessor 410 connected to a set of accelerators 420, a data memory unit430, a program memory unit 440, and a context memory 450. The set ofaccelerators 420 and data memory unit 430 are shared by the main packetprocessor 371-A and second packet processor 372-A.

The execution of tasks by the core 410 is scheduled by a scheduler 460.The scheduler 460 receives requests from the different requestgenerators and determines the next thread number when a context switchis triggered. The next thread may be selected according to a predefinedpriority policy.

The core 410 in the main packet processors 371-A may be, for example, aRISC processor that is designed to execute processing tasks with aminimal latency. For this purpose, all arithmetic and logic operationsas well as source and destination variables are register based. The onlyoperations that require access to the data memory 430 are load and storeoperations. Furthermore, the core 410 is designed with separate channelsutilized for program and data access. The program memory 440 is a readonly memory that holds tasks' instructions and is accessible by the CPU310 (see FIG. 3).

The data memory 430 is a read/write memory that keeps data of thevarious tasks, and the context memory 450 includes instances ofregisters used by respective packet processors 371-A and 372-A. Theaccelerators 420 are dedicated hardware processing components designedto increase the performance of packet processors 371-A and 372-A byspeeding up time-consuming tasks. These dedicated processing components(not shown) include at least a security engine, a cyclical redundancychecking (CRC) engine, a direct memory access (DMA), a board businterface, an external memory lookup engine, Semaphores forsynchronization between the two packet processors 371-A and 372-A, andgeneral purpose timers for different time counting tasks, such as ratelimiting.

A CRC engine enables the fast CRC calculation when error detection andcorrection is required. The CRC accelerator operates off-line on datastored in data memory 430. The DMA accelerator is responsible for datatransfer from and to the data memory 430 and the external memory 355 orinternal memory 365. The security engine provides a mechanism for IPSecprocessing by implementing HW accelerators for decrypting, encryptingand authentication of packets. The encryption/decryption andauthentication algorithms supported by the security engine include, butare not limited to, AES, 3DES, SHA-1 and MD-5, and the like.

As discussed above, the main packet processor 371-A is designed withmore processing power relative to the secondary processor 372-A. Withthis aim, the second packet processor 372-A includes a core processor470 served by a scheduler 480, a context memory unit 490, and a programmemory unit 495. In an embodiment of the invention, the size of each ofmemory units 490 and 495 is smaller than the size of the program andcontext of memory units 440 and 450. In certain exemplary embodiments ofthe invention, the secondary packet processor 371-B includes multiplecores 470. The secondary packet processor 372-A can access and utilizethe accelerators 420 and data memory 430 in the domain of the mainpacket processor 371-A, through the internal inter-connect bus 401. Thecore 470 may be a RISC processor, while the execution of tasks by thecore 470 is scheduled by the scheduler 480.

Each of the main and secondary packet processors 371-A and 372-A isdesigned to perform certain tasks to enable efficient and fastprocessing of packets. Specifically, the main packet processor 371-Asupports tasks, such as bridging of packets, routing of packets, andsecurity processing tasks, such as IP security (IPsec) processing,decrypting, encrypting and authentication of packets.

The bridging task supports functionality, such as, but not limited to,filtering of packets based on Layer-2, Layer-3, and Layer-4 protocols'parameters (for trapping to CPU or drop of certain protocols such asARP, IGMP, MLD), classification, header modification, forwarding, andQoS mapping. Classification of incoming traffic to flows is performedbased on layer-2 field parameters, such as a VLAN tag. Flow parameterstogether with other packet fields, such as the MAC address or VLANpriority bits are used for setting the header manipulation action aswell as making forwarding and QoS decisions. As will be described below,the header manipulation QoS mapping tasks are performed by the secondarypacket processor 371-B.

The routing task performs Layer-3/Layer-4 packet header parametersvalidation (such as checksum and packet length). Traffic is classifiedto connections based on L3/L4 fields. Each connection determines routingoperations such as NAT (network address translation) parameters, DSCPremarking, next hop IP and PPPoE termination action. Unmatched trafficfrom the WAN is processed by firewall logic in the CPU 310, i.e.,enabling trapping to the CPU 310 selected traffic based on configurableparameters, and dropping the rest.

The secondary packet processor 372-A is designed to perform the tasks ofheader modification, QoS mapping, management of egress queues in theGPON and Ethernet MAC adapters, and handling the transmissions ofpackets, i.e., scheduling the transmission of packets, rate limiting ofthe transmitted packets, and handshaking with the broad bus 390 (seeFIG. 3).

The header modification includes various VLAN handling operations, suchas: remove, add, or replace VLAN tags in incoming packets, PPPoEtermination, and other tunneling or tagging operations. The QoS mappingincludes mapping the QoS guaranteed to the incoming packet. The mappingmay be performed according to a flow identification (ID) number, a VLANtag, priority bits, or IP DSCP bits designated in the packet headers.

It should be noted that the main and secondary packet processors 371-Aand 372-A may be programmed to perform tasks other than those describedabove. In addition, the main packet processor 371-A may be configured toperform any of the tasks of header modification, QoS mapping, andmanagement of egress queues, while the secondary packet processor 372-Amay be configured to support the main packet processors in theprocessing of residential gateway tasks.

FIG. 5 shows a non-limiting and exemplary flowchart 500 for describingthe processing of packets by a cluster processor 370-A, in accordancewith an embodiment of the present invention. The process will bediscussed herein with reference to FIGS. 3 and 4.

At S510, an incoming packet to be processed is received from the ingresshandler 380. The incoming packet may be one of a downstream packet, anupstream packet, or a local switching packet. A downstream packet isreceived on the external-network MAC adapter 330 and output on one ofthe Ethernet MAC adapters 320-j. An upstream packet is received from oneof the Ethernet MAC adapters 320-j and sent, after processing, to theexternal-network MAC adapter 330. A local switching packet is a receivedpacket that should be routed between devices connected to the EthernetMAC adapters 320-j. All packets are sent and received through the broadbus 390. As mentioned above, the ingress handler 380 pre-processes anincoming packet to determine at least the destination cluster and memory(355 or 365) for the packet. The ingress handler 380 further parses theincoming packet and provides the parsed data including the packetdescriptor and packet headers to the data memory 430. The payload of theincoming packet is written to either the internal memory 365 or externalmemory 355.

At S520, the scheduler 460 is interrupted to inform the main packetprocessor 371-A of the incoming packet. In response, the scheduler 460triggers the execution, at S530, of the one or more tasks assigned tothe main packet processor 371-A. In an embodiment of the invention,these tasks include routing or bridging the incoming packet, and IP-SECprocessing, decrypting, encrypting and authentication of packets.

At S540, an interrupt is sent to the scheduler 480 of the secondarypacket processor 372-A to trigger the processing tasks that theprocessor 372-A is configured to handle. In an embodiment of theinvention, these tasks include header modification, QoS mapping,management of egress queues, and handling the transmissions of packets,all of which are discussed above. At S550, the execution of theprocessing tasks by the secondary packet processor 372-A takes place.During the execution, data, such as the packet descriptor is read fromthe data memory 430 and modified data is written back to the data memory430. Once the processing is completed the modified packet is alsowritten to the external memory 355 or internal memory 365, based on thedecision of the ingress handler 380.

At S560, once the processing is completed by the secondary packetprocessor 372-A, a transmit command is sent to the broad bus handlerthat the processed packet is ready to be sent to its destination.Typically, S560 includes linking the packet descriptor with an outputqueue associated with a destination MAC adapter. Once the secondarypacket processor 372-A writes the packet descriptor to the output queue,a new incoming packet can be handled by the packet processor 372-A. Itshould be noted that each of the packet processors 371-A and 372-Asupports a multitask architecture, thus at any specific time more thanone packet is being processed. In addition, the cluster of packetprocessors 370-A or 370-B does not require completing the processing ofa packet before starting to process the next packet.

It should noted that the destination Ethernet MAC adapter 320-jretrieves data chunks from the internal or external memory used to storethe payload using the packet description. The access to theexternal/internal memory is through a respective broad bus handler andthe DMA engine. Upon retrieval of the entire packet at the Ethernet MACadapter 320-j, the packet is transmitted to the subscriber deviceconnected to the adapter 320-j.

In a similar fashion, data chunks of the processed packet are retrievedfrom either the external or internal memory by the external-network MACadapter 330 and processed accordingly. For example, if the adapter 330is a GPON MAC adapter then the retrieved data is saved in the specificT-CONT's queue. The GPON MAC adapter maintains T-CONT queues as thenumber of T-CONTs and cyclically requests for packets in order to fill aspecific T-CONT queue. The access to the external/internal memory isthrough a respective broad bus handler and the DMA engine. Upon completereception of the entire packet by the GPON MAC adapter the packet istransmitted to the OLT.

The principles of the invention are implemented as hardware, firmware,software, or any combination thereof. Moreover, the software ispreferably implemented as an application program tangibly embodied on aprogram storage unit or computer readable medium consisting of parts, orof certain devices and/or a combination of devices. The applicationprogram may be uploaded to, and executed by, a machine comprising anysuitable architecture. Preferably, the machine is implemented on acomputer platform having hardware such as one or more central processingunits (“CPUs”), a memory, and input/output interfaces. The computerplatform may also include an operating system and microinstruction code.The various processes and functions described herein may be either partof the microinstruction code or part of the application program, or anycombination thereof, which may be executed by a CPU, whether or not suchcomputer or processor is explicitly shown. In addition, various otherperipheral units may be connected to the computer platform such as anadditional data storage unit and a printing unit. Furthermore, anon-transitory computer readable medium is any computer readable mediumexcept for a transitory propagating signal.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the principlesof the invention and the concepts contributed by the inventor tofurthering the art, and are to be construed as being without limitationto such specifically recited examples and conditions. Moreover, allstatements herein reciting principles, aspects, and embodiments of theinvention, as well as specific examples thereof, are intended toencompass both structural and functional equivalents thereof.Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture, i.e., any elements developed that perform the same function,regardless of structure.

What we claim is:
 1. A network processor for performing residentialgateway processing tasks, comprising: a first cluster of packetprocessors and a second cluster of packet processors, wherein the firstcluster and the second cluster include a main packet processor and asecondary packet processor, wherein the main packet processor isconfigured to perform routing of an incoming packet and the secondarypacket processor is configured to perform a task off-loaded from themain packet processor; a plurality of Ethernet media access control(MAC) adapters configured to interface with a plurality of subscriberdevices connected to a residential gateway; an external-network MACadapter configured to interface with a wide area network (WAN) connectedto the network processor; and an ingress handler configured to enableprocessing of the incoming packet by one of the first and the secondclusters having a smaller processing load between the first and thesecond clusters to load balance the processing of the incoming packetbetween the first cluster and the second cluster.
 2. The networkprocessor of claim 1, further comprising: a central processing unit(CPU) configured to execute commands received from the first cluster andthe second cluster; and a broad bus configured to enable communicationto the first cluster, the second cluster, the plurality of Ethernet MACadapters, and the external-network MAC adapter.
 3. The network processorof claim 2, further comprising: an internal memory unit configured tostore data processed by the first and the second clusters; and anarbiter, coupled to the internal memory unit, configured to arbitrateaccess requests to the internal memory unit.
 4. The network processor ofclaim 3, wherein the network processor is further coupled to an externalmemory unit and is configured to store the data processed by the firstand the second clusters.
 5. The network processor of claim 4, whereinthe external memory unit comprises: a double data rate (DDR) type, andwherein the internal memory unit comprises: a static random-accessmemory (SRAM) type.
 6. The network processor of claim 4, wherein theingress handler is configured to decide which of the internal memoryunit or the external memory unit to send a payload of the incomingpacket based on at least one of: a source address of the incomingpacket, a destination address of the incoming packet, an input portnumber, a protocol type, or a Virtual Local Area Network (VLAN) tag. 7.The network processor of claim 1, wherein the WAN is a Gigabit passiveoptical network (GPON) and the external-network MAC adapter is furtherconfigured to process traffic in accordance with a GPON standard.
 8. Thenetwork processor of claim 1, wherein the WAN is an Ethernet PON (EPON)and the external-network MAC adapter is further configured to processtraffic in accordance with an EPON standard.
 9. The network processor ofclaim 1, wherein the WAN is an Active Ethernet network and theexternal-network MAC adapter is further configured to process traffic inaccordance with an Active Ethernet standard.
 10. The network processorof claim 1, wherein the first cluster and the second cluster eachcomprises: a data memory unit and a set of accelerators shared by themain packet processor and the secondary packet processor.
 11. Thenetwork processor of claim 1, wherein the off-loaded task comprises:header modification; quality of service (QoS) mapping; management ofegress queues in the external-network MAC adapter and the plurality ofEthernet MAC adapters; scheduling transmission of packets; rate limitingof packets transmitted after processing by the first and the secondclusters of packet processors; or handshaking with a broad bus.
 12. Thenetwork processor of claim 1, wherein the main packet processor isfurther configured to: encrypt and decrypt data packets, blockunauthorized access, bridge packets, locally switch packets, or performIP security (IP Sec) protocol processing.
 13. The network processor ofclaim 1, wherein the load balancing performed by the ingress handler isfurther based on actual traffic load of the first cluster and the secondduster, wherein the one of the first and the second clusters having asmaller traffic load between the first and the second clusters isenabled to process the incoming packet.
 14. The network processor ofclaim 13, wherein the ingress handler is further configured to: maintainlookup tables to map a destination and source MAC addresses to accessboth the external MAC adapter and the plurality of Ethernet MACadapters, parse the incoming packet, and manage an ingress queue for thefirst and the second clusters.
 15. The network processor of claim 1,wherein the main packet processor is characterized as having higherprocessing power than the secondary packet processor.
 16. The networkprocessor of claim 1, wherein at least one of: the first cluster ofpacket processors or the second cluster of packet processors furthercomprises: a set of accelerators shared by the main packet processor andthe secondary packet processor; a data memory unit shared by the mainpacket processor and the secondary packet processor; and an internal busconfigured to communicate between the main packet processor and thesecondary packet processor.
 17. The network processor of claim 16,wherein the set of accelerators comprises: a lookup table; a cyclicalredundancy checking (CRC) engine; a direct memory access (DMA) engine;an external memory lookup table; a board bus interface; a securityengine; or a set of Semaphores to synchronize the main and the secondarypacket processors.
 18. The network processor of claim 16, wherein thedata memory unit comprises: a read/write memory that is configured tostore data corresponding to the processing tasks executed by the mainpacket processor and the secondary packet processor.
 19. The networkprocessor of claim 1, wherein at least one of: the first cluster ofpacket processors or the second cluster of packet processors furthercomprises: a main scheduler, coupled to the main packet processor,configured to schedule a first process thread to be executed by the mainpacket processor; a main context memory, coupled to the main packetprocessor, configured to store a first instance of a first register tobe used by the main packet processor; a main program memory, coupled tothe main packet processor, configured to store a first instruction of afirst task to be executed by the main packet processor; a secondaryscheduler, coupled to the secondary packet processor, configured toschedule a second process thread to be executed by the secondary packetprocessor; a secondary context memory, coupled to the secondary packetprocessor, configured to store a second instance of a second register tobe used by the secondary packet processor; and a secondary programmemory, coupled to the secondary packet processor, configured to store asecond instruction of a second task to be executed by the secondarypacket processor.
 20. The network processor of claim 19, wherein: themain scheduler is further configured to interrupt the main packetprocessor to trigger execution of the first instruction upon receptionof the incoming packet, the secondary scheduler is further configured tointerrupt the secondary packet processor to trigger execution of thesecond instruction upon reception of the incoming packet, and thesecondary packet processor is further configured to provide a transmitcommand to the network processor to indicate that a processed incomingpacket is ready to be sent to its destination once the execution of thesecond instruction is completed.
 21. The network processor of claim 1,Wherein at least one of the first cluster of packet processors or thesecond cluster of packet processors is further configured to: process adownstream packet received from the WAN; process an upstream packetreceived from a subscriber device connected in a local area network(LAN); or process a local switching packet that is routed betweensubscriber devices in the LAN.